From: Colin Walters Date: Tue, 24 Jun 2025 21:14:54 +0000 (-0400) Subject: prepare-root: Use tempdir for transient etc backing X-Git-Tag: archive/raspbian/2025.7-2+rpi1^2^2~6^2~4^2~14^2~2 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=416f2c3ddfd264abcb41beff1b3d1a6d2dc64cb2;p=ostree.git prepare-root: Use tempdir for transient etc backing Prep for soft reboots. Signed-off-by: Colin Walters --- diff --git a/src/libotcore/otcore-prepare-root.c b/src/libotcore/otcore-prepare-root.c index dcf5bead..7328698a 100644 --- a/src/libotcore/otcore-prepare-root.c +++ b/src/libotcore/otcore-prepare-root.c @@ -382,7 +382,12 @@ otcore_mount_etc (GKeyFile *config, GVariantBuilder *metadata_builder, const cha g_autofree char *target_etc = g_build_filename (mount_target, "etc", NULL); if (etc_transient) { - const char *ovldir = "/run/ostree/transient-etc"; + // Right now we just reuse the global /run tmpfs as a place to put temporary files. + // In order to handle soft reboots, we need a randomly named temporary directory. + g_autofree char *ovldir_buf = g_strdup ("/run/ostree/transient-etc.XXXXXX"); + const char *ovldir = g_mkdtemp_full (ovldir_buf, 0700); + if (!ovldir) + return glnx_throw_errno_prefix (error, "failed to create transient etc tempdir"); g_variant_builder_add (metadata_builder, "{sv}", OTCORE_RUN_BOOTED_KEY_TRANSIENT_ETC, g_variant_new_string (ovldir));